package cn.mjnxin.iot.connector.message;

/**
 * 报文基础接口
 * @author CLG 2023年10月10日
 * @version V1.0.0
 */
public interface IMessage<T extends IMessage<?>> extends IMessageFacade{
	/**
	 * 连接端标识，不能为空
	 */
	String getConnectorId();
	
	/**
	 * 构造应答包
	 * @return
	 */
	T makeResponse();

	/**
	 * 解包
	 * @param body
	 * @param bodyHex
	 */
	void unpack(byte[] buf, String bodyHex);

	/**
	 * 打包
	 * @return
	 */
	byte[] pack();
	
	/**
	 * 返回格式化的JSON信息
	 * @return
	 */
	String toJson();

	void setBodyHex(String bodyHex);
}
